import os
import re
import shutil


# 此时已经拿到前端发送的文件,对文件的处理进行逐步分析


# 第一步,拆解文件名,项目编号-单号-检测项目号-样品号.数据类型后缀,file_name: project-order-subject-8E2.msg
def get_dir_dict(filename: str) -> dict:  # 返回文件夹名字典
    list_1 = filename.split('-')
    dir_date = re.search(r"\d{8}", list_1[1]).group()
    dir_pro = list_1[1].replace(dir_date, '')
    dir_dict = {"dir_date": dir_date, "dir_pro": dir_pro, "dir_ord": list_1[1], "dir_sub": list_1[2]}
    return dir_dict

# 第二步,依据文件名字典,判断是否有对应目录,无则创建,返回对应的目录路径
def create_dir(dir_dict) -> str:
    # 根目录下创建
    original_ = '/home/ubuntu/Desktop'  # 'E:'
    dir_date = dir_dict['dir_date']
    dir_pro = dir_dict['dir_pro']
    dir_ord = dir_dict['dir_ord']
    dir_sub = dir_dict['dir_sub']
    if not os.path.exists(os.path.join(original_,dir_date)):
        os.mkdir(os.path.join(original_,dir_date))
    if not os.path.exists(os.path.join(original_,dir_pro)):
        os.mkdir(os.path.join(original_,dir_pro))
    if not os.path.exists(os.path.join(original_,dir_ord)):
        os.mkdir(os.path.join(original_,dir_ord))
    if not os.path.exists(os.path.join(original_,dir_sub)):
        os.mkdir(os.path.join(original_,dir_sub))
    # 依据文件名中的信息创建相应的文件夹后 返回该文件正确的保存路径 str
    save_path = "/".join([original_,dir_date,dir_pro,dir_ord,dir_sub])
    return save_path
























